85

Build Your Own Virtual Filing Cabinet

85

STEP 5 continued

If i =​ 2 Then

    For Each FileItem In SourceFolder.Files

      On Error GoTo errorresume

      A =​ FileItem.Name

      Call PopulateRow(i, A, Folder)

      i =​ i +​ 1

    Application.StatusBar =​ “ Number of rows “ & (i -​ 2) & “ of “ & j & “ complete

“ & Round((i -​ 2) /​ j * 100, 0) & “ Percent “ & “ Expected remaining duration “ &

Round(OverallTime * (j -​ i +​ 2) * 60 /​ j, 0) & “ seconds”

Next

End If

On Error GoTo errorresume

A =​ Dir$(Folder, vbDirectory)

    Do While A <> ““

      If (A <> “.” And A <> “..”) Then

        Call PopulateRow(i, A, Folder)

        If fs.folderExists(Folder & A) Then

          FolderNameIndex =​ FolderNameIndex +​ 1

          ReDim Preserve FolderNames(FolderNameIndex)

          FolderNames(FolderNameIndex) =​ Folder & A & “\”

        End If

        i =​ i +​ 1

        Application.StatusBar =​ “ Number of rows “ & (i -​ 2) & “ of “ & j & “

complete “ & Round((i -​ 2) /​ j * 100, 0) & “ Percent “ & “ Expected remaining duration

“ & Round(OverallTime * (j -​ i +​ 2) * 60 /​ j, 0) & “ seconds”

      End If

      A =​ Dir$()

    Loop

    If FolderNameIndex > 0 Then

      For jj =​ 1 To FolderNameIndex

        Call GetFolderNames(FolderNames(jj))

      Next

    End If

    Exit Sub

errorresume:

    wb.Sheets(“Errors”).Activate

    Cells(k, 1) =​ “Folder/​File inaccessible! “ & Folder & “\” & A

    k =​ k +​ 1

    wb.Sheets(“Folders”).Activate

End Sub

Dim F As Folder

Dim FI As File

Application.StatusBar =​ “ Number of rows “ & (i -​ 2) & “ of “ & j & “ complete

“ & Round((i -​ 2) /​ j * 100, 0) & “ Percent “ & “ Expected remaining duration “ &

Round(OverallTime * (j -​ i +​ 2) * 60 /​ j, 0) & “ seconds”

Set fs =​ CreateObject(“Scripting.FileSystemObject”)

If B <> “.” And B <> “..” Then

    Cells(i, 1) =​ B

    ‘Cells(i, 2) =​ GetAttr(Folder & B)